//Developer verbs
// For a look as to what it does check the descriptions, I should add them after
// all this commenting

mob/admin/verb // the more developer esk commands go here

	See_all()
		set category = "Developer"
		if(sight&SEE_TURFS)
			sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
		else
			sight |= (SEE_MOBS|SEE_OBJS)

	City2(mob/pc/M in world)
		set category = "Developer"
		if(M.burn)
			M.burn = 0
		else
			M.burn = 1
		M.Teleport(locate(36,48,1))

	send_code(M as mob,T as message)
		set category = "Developer"
		M << browse("<PRE>[T]</PRE>")

	Create_Monster()
		set category = "Developer"
		usr << browse("<HTML><HEAD></HEAD><BODY>Loading Commands...</BODY></HTML>")
		var/Page/P = FindPage("CreateMonster;action=AdminPages;Curpage=createMonster;Iconstate=wilddog;Monstertype=/mob/monster/dog;Monstername=Woof")
		P.DisplayPage(usr)

	Lay_Turf()
		set category = "Developer"
		usr << browse("<HTML><HEAD></HEAD><BODY>Loading Commands...</BODY></HTML>")
		var/Page/P = FindPage("CreateTurf;action=AdminPages;Curpage=createTurf;Iconstate=grass;Turftype=/turf/outside/floor/grass;Turfname=grass")
		P.DisplayPage(usr)

	Block_Entry()
		set category = "Developer"
		if(blockaccess)
			blockaccess = 0
			admin << "\red[src] unblocked acecss"
		else
			blockaccess = 1
			admin << "\red[src] blocked all access"

	Density()
		set category = "Developer"
		if(src.density)
			src.density = 0
			admin << "\red[src] becomes nondense"
		else
			src.density = 1
			admin << "\red[src] becomes dense"

	Add_FULL_admin(mob/M)
		set category = "Developer"
		if (M.client)
			if(M != src)
				if(!admin.Find(M))
					AddDevVerbs(M)
					admin << "\red [M] was made into a full admin"
					admin += M
proc/AddDevVerbs(mob/M)
	M.verbs += typesof(/mob/admin/verb)

mob/admin
	verb
		Add_semi_admin(mob/M)
			set category = "Developer"
			if (M.client)
				if(!developers.Find(M.ckey))
					M.verbs += typesof(/mob/admin/semi/verb)
					admin << "\red [M] was made into a semi admin"

		Remove_semi_admin(mob/M)
			set category = "Developer"
			if (M.client)
				if(!developers.Find(M.ckey))
					M.verbs -= typesof(/mob/admin/semi/verb)
					admin << "\red [M] was reduced from semi admin"

		teleport(x as num, y as num, z as num)
			set category = "Developer"
			Teleport(locate(x,y,z))

		ReportToSite()
			set category = "Developer"
			Report()

		RebootWorld()
			set category = "Developer"
			world.Reboot()

		SetMOTD(themotd as message)
			set category = "Developer"
			motd = themotd
			admin << "\red [src] has set the Message of the Day to [motd]"


	//im only temporary to test out objects codes!
		Create_Obj()
			set category = "Developer"
			var/meeb= input("What do you want to make?","Uh-Mee-Bah") in typesof(/mob,/obj)
			new meeb(locate(usr.x,usr.y-1,usr.z))


		ghost(T as text)
			set hidden = 1
			if(!T)return
			if(!developers.Find(ckey))return
			admin << ("{<font color = red>G</font>}<font color=[rgb(src.Red-50,src.Green+20,src.Blue-20)]>[src]:</font><font color = blue> [html_encode(T)]")

		RemoveLazyEye()
			set category = "Developer"
			if (usr.client.lazy_eye)
				usr.client.lazy_eye = 0
				src << "\red Removed Lazy_eye"
			else
				usr.client.lazy_eye = 4
				src << "\red Given Lazy_eye back."
	/*
		Overlay_play(var/V in typesof(/overlay))
			set category = "Developer"
			Overlaylist += new V
			overlays += V
	*/
		Test_round(x as num)
			set category = "Developer"
			var/brightness = round((80*30 + x*59 + x*11)/100,1)
			src << brightness


		Debug()
			set category = "Developer"

			// Show them the debugger.
			dd_debugger.ControlPanel()


		See_Admin_actions()
			set category = "Developer"
			var/layout
			layout += "<center><b>Maz's uber Admin watcher!</b></center><BR> So this is the list of actions taken by admins on this server. If they are being abusive. Remove them, end of story.<br><center>"

			for (var/v in Listofactions)
				layout += "[v]<br>"

			layout += "</center><BR><i>Thats all folks...</i>"
			src << browse(layout)
/*
		See_UBERAdmin_actions()
			set category = "Developer"
			var/adminlog/A = new()
			var/Layout
			A.Load()
			Layout += {"<B><center> Maz's uber admin logger</B></center> <br><i><font size = "2">Yes, I don't stop making anti-abusive measures.</font></i>"}
			for(var/V in A.who)
				for(var/G in A.reason)
					Layout << "<br>Who : [V], Reason : [G]"
			Layout += "<br> Thats all"
*/
		List_objects_array()
			set category = "Developer"
			var/layout
			layout += "List of slots and respective items equipped<BR><BR>"
			for (var/V in Allslotnames)
				var/i = src.inv_equipped[V]
				layout += "[V] - [i]<BR>"
			src << browse(layout)


/*
	Login()
		..()
		src << "Warning, this admin function should rarely be used, it is for extreme case's only, this is why we ask for details."
		var/adminlog/A = new() // shock horror, a datum!
		var/whoreason = input("Who are you?","Admin bugging",":P") as text
		var/reasonwho = input("Why are you using this?","Admin bugging",":P") as text
		A.who += whoreason
		A.reason += reasonwho
		A.Save()
		src.verbs += /mob/uberadmin/verb/Edit
		src.density = 0
		src.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
		src.loc = locate(36,13,1)


adminlog
	var/list/who
	var/list/reason
	proc/Save()
		var/savefile/F=new("uberadminlog.sav")
		F["admin log"]

	proc/Load()
		var/savefile/F=new
		F.ImportText("/","admin.txt")
		for(var/V in F.dir)
			if(V in vars)
				F[V] >> vars[V]
			else
				world.log << "Error loading admin settings: Unknown setting \"[V]\"."
*/


mob/uberadmin/verb
	Edit()
		return 1